/**
 * @copyright Copyright (c) 2024 COOREAL. All rights reserved.
 * @description ModuleHelper.ts
 * @author  @date 2025/07/01
 */

import * as BABYLON from '@babylonjs/core';

/**
 * 模块助手类，用于处理模块相关事件。
 */
export class ModuleHelper {
  /**
   * 触发事件，将源事件的通知传递给目标事件。
   * @param source 源事件
   * @param target 目标事件
   */
  public static forward<T>(source: BABYLON.Observable<T>, target: BABYLON.Observable<T>) {
    source.add((evenetData, eventState) => {
      target.notifyObservers(evenetData);
      eventState.skipNextObservers = true;
    });
  }
}
